package com.xtck.ha.common.domain.system.api;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.xtck.ha.common.core.annotation.Excel;
import com.xtck.ha.common.core.web.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 异常预警对象 TBL_ANOMALY_WARNINGS
 *
 * @author rqc
 * @date 2024-10-11
 */
@ApiModel(description = "异常预警")
public class TblAnomalyWarnings extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    @ApiModelProperty("异常预警的唯一标识")
    @Excel(name = "异常预警的唯一标识")
    private Long warningId;

    @ApiModelProperty("异常预警的名称或简要描述")
    @Excel(name = "异常预警的名称或简要描述")
    private String warningName;

    @ApiModelProperty("异常预警的详细描述(告警信息)")
    @Excel(name = "异常预警的详细描述(告警信息)")
    private String warningDescription;

    @ApiModelProperty("预警的类型（如：系统异常、硬件故障）")
    @Excel(name = "预警的类型", readConverterExp = "如=：系统异常、硬件故障")
    private String warningType;

    @ApiModelProperty("值域范围为[1,2,3,4]，分别代表轻微故障、一般故障、严重故障、重大故障")
    @Excel(name = "值域范围为[1,2,3,4]，分别代表轻微故障、一般故障、严重故障、重大故障")
    private String warningLevel;

    @ApiModelProperty("预警当前的状态（如未处理、处理中）")
    @Excel(name = "预警当前的状态", readConverterExp = "如=未处理、处理中")
    private String warningStatus;

    @ApiModelProperty("卫星标识")
    @Excel(name = "卫星标识")
    private Long scid;

    @ApiModelProperty("分系统代号")
    @Excel(name = "分系统代号")
    private String subSystem;

    @ApiModelProperty("故障参数代号")
    @Excel(name = "故障参数代号")
    private String faultParaNumber;

    @ApiModelProperty("故障参数名称")
    @Excel(name = "故障参数名称")
    private String faultParaName;

    @ApiModelProperty("故障发生时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "故障发生时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date faultTime;

    @ApiModelProperty("相关设备ID")
    @Excel(name = "相关设备ID")
    private Long relatedDeviceId;

    @ApiModelProperty("相关知识规则ID")
    @Excel(name = "相关知识规则ID")
    private Long relatedKnowledgeRuleId;

    @ApiModelProperty("相关的遥测参数ID")
    @Excel(name = "相关的遥测参数ID")
    private Long relatedTelemetryParameterId;

    @ApiModelProperty("关联的预警名称")
    @Excel(name = "关联的预警名称")
    private String relatedWarningName;

    @ApiModelProperty("该预警记录创建人或系统")
    @Excel(name = "该预警记录创建人或系统")
    private String createdBy;

    @ApiModelProperty("预警创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预警创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdTime;

    @ApiModelProperty("预警的解决时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预警的解决时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date resolutionTime;

    @ApiModelProperty("最后一次更新该记录的用户")
    @Excel(name = "最后一次更新该记录的用户")
    private String lastUpdatedBy;

    @ApiModelProperty("最后一次更新该记录的时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后一次更新该记录的时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastUpdatedTime;

    @ApiModelProperty("其他备注信息")
    @Excel(name = "其他备注信息")
    private String NOTES;

    public void setWarningId(Long warningId)
    {
        this.warningId = warningId;
    }

    public Long getWarningId()
    {
        return warningId;
    }
    public void setWarningName(String warningName)
    {
        this.warningName = warningName;
    }

    public String getWarningName()
    {
        return warningName;
    }
    public void setWarningDescription(String warningDescription)
    {
        this.warningDescription = warningDescription;
    }

    public String getWarningDescription()
    {
        return warningDescription;
    }
    public void setWarningType(String warningType)
    {
        this.warningType = warningType;
    }

    public String getWarningType()
    {
        return warningType;
    }
    public void setWarningLevel(String warningLevel)
    {
        this.warningLevel = warningLevel;
    }

    public String getWarningLevel()
    {
        return warningLevel;
    }
    public void setWarningStatus(String warningStatus)
    {
        this.warningStatus = warningStatus;
    }

    public String getWarningStatus()
    {
        return warningStatus;
    }
    public void setScid(Long scid)
    {
        this.scid = scid;
    }

    public Long getScid()
    {
        return scid;
    }
    public void setSubSystem(String subSystem)
    {
        this.subSystem = subSystem;
    }

    public String getSubSystem()
    {
        return subSystem;
    }
    public void setFaultParaNumber(String faultParaNumber)
    {
        this.faultParaNumber = faultParaNumber;
    }

    public String getFaultParaNumber()
    {
        return faultParaNumber;
    }
    public void setFaultParaName(String faultParaName)
    {
        this.faultParaName = faultParaName;
    }

    public String getFaultParaName()
    {
        return faultParaName;
    }
    public void setFaultTime(Date faultTime)
    {
        this.faultTime = faultTime;
    }

    public Date getFaultTime()
    {
        return faultTime;
    }
    public void setRelatedDeviceId(Long relatedDeviceId)
    {
        this.relatedDeviceId = relatedDeviceId;
    }

    public Long getRelatedDeviceId()
    {
        return relatedDeviceId;
    }
    public void setRelatedKnowledgeRuleId(Long relatedKnowledgeRuleId)
    {
        this.relatedKnowledgeRuleId = relatedKnowledgeRuleId;
    }

    public Long getRelatedKnowledgeRuleId()
    {
        return relatedKnowledgeRuleId;
    }
    public void setRelatedTelemetryParameterId(Long relatedTelemetryParameterId)
    {
        this.relatedTelemetryParameterId = relatedTelemetryParameterId;
    }

    public Long getRelatedTelemetryParameterId()
    {
        return relatedTelemetryParameterId;
    }
    public void setRelatedWarningName(String relatedWarningName)
    {
        this.relatedWarningName = relatedWarningName;
    }

    public String getRelatedWarningName()
    {
        return relatedWarningName;
    }
    public void setCreatedBy(String createdBy)
    {
        this.createdBy = createdBy;
    }

    public String getCreatedBy()
    {
        return createdBy;
    }
    public void setCreatedTime(Date createdTime)
    {
        this.createdTime = createdTime;
    }

    public Date getCreatedTime()
    {
        return createdTime;
    }
    public void setResolutionTime(Date resolutionTime)
    {
        this.resolutionTime = resolutionTime;
    }

    public Date getResolutionTime()
    {
        return resolutionTime;
    }
    public void setLastUpdatedBy(String lastUpdatedBy)
    {
        this.lastUpdatedBy = lastUpdatedBy;
    }

    public String getLastUpdatedBy()
    {
        return lastUpdatedBy;
    }
    public void setLastUpdatedTime(Date lastUpdatedTime)
    {
        this.lastUpdatedTime = lastUpdatedTime;
    }

    public Date getLastUpdatedTime()
    {
        return lastUpdatedTime;
    }
    public void setNOTES(String NOTES)
    {
        this.NOTES = NOTES;
    }

    public String getNOTES()
    {
        return NOTES;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("warningId", getWarningId())
                .append("warningName", getWarningName())
                .append("warningDescription", getWarningDescription())
                .append("warningType", getWarningType())
                .append("warningLevel", getWarningLevel())
                .append("warningStatus", getWarningStatus())
                .append("scid", getScid())
                .append("subSystem", getSubSystem())
                .append("faultParaNumber", getFaultParaNumber())
                .append("faultParaName", getFaultParaName())
                .append("faultTime", getFaultTime())
                .append("relatedDeviceId", getRelatedDeviceId())
                .append("relatedKnowledgeRuleId", getRelatedKnowledgeRuleId())
                .append("relatedTelemetryParameterId", getRelatedTelemetryParameterId())
                .append("relatedWarningName", getRelatedWarningName())
                .append("createdBy", getCreatedBy())
                .append("createdTime", getCreatedTime())
                .append("resolutionTime", getResolutionTime())
                .append("lastUpdatedBy", getLastUpdatedBy())
                .append("lastUpdatedTime", getLastUpdatedTime())
                .append("NOTES", getNOTES())
                .toString();
    }
}
